From: Florian Müllner Date: Thu, 3 Nov 2016 17:11:54 +0000 (+0100) Subject: mpris: Make forward/backward insensitive when unavailable X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~494 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=19816523c7e16dd8b0aef5aaf2f2b9a6e6208760;p=gnome-shell.git mpris: Make forward/backward insensitive when unavailable Media notifications currently always show the forward and backward buttons as clickable, regardless of whether the corresponding action is available or not. Media players usually address this by rendering controls insensitive in this case, so do the same here. https://bugzilla.gnome.org/show_bug.cgi?id=773884 --- diff --git a/data/theme/gnome-shell-high-contrast.css b/data/theme/gnome-shell-high-contrast.css index 6a3f87594..b46a695c8 100644 --- a/data/theme/gnome-shell-high-contrast.css +++ b/data/theme/gnome-shell-high-contrast.css @@ -912,6 +912,8 @@ StScrollBar { padding-right: 18px; } .message-media-control:last-child:rtl { padding-left: 18px; } + .message-media-control:insensitive { + color: #999999; } .media-message-cover-icon { icon-size: 48px !important; } diff --git a/data/theme/gnome-shell-sass b/data/theme/gnome-shell-sass index a17289478..671023a8b 160000 --- a/data/theme/gnome-shell-sass +++ b/data/theme/gnome-shell-sass @@ -1 +1 @@ -Subproject commit a172894788ec73c82be9aa6d29243809fdb0111d +Subproject commit 671023a8b333f027d8c88fca9963b11581c10a70 diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css index 58a76566d..5f2d39ff4 100644 --- a/data/theme/gnome-shell.css +++ b/data/theme/gnome-shell.css @@ -912,6 +912,8 @@ StScrollBar { padding-right: 18px; } .message-media-control:last-child:rtl { padding-left: 18px; } + .message-media-control:insensitive { + color: #8e8e80; } .media-message-cover-icon { icon-size: 48px !important; } diff --git a/js/ui/mpris.js b/js/ui/mpris.js index b42d9aa57..a5ca66f4d 100644 --- a/js/ui/mpris.js +++ b/js/ui/mpris.js @@ -36,6 +36,8 @@ const MprisPlayerIface = ' \ \ \ \ + \ + \ \ \ \ @@ -57,7 +59,7 @@ const MediaMessage = new Lang.Class({ this._icon = new St.Icon({ style_class: 'media-message-cover-icon' }); this.setIcon(this._icon); - this.addMediaControl('media-skip-backward-symbolic', + this._prevButton = this.addMediaControl('media-skip-backward-symbolic', Lang.bind(this, function() { this._player.previous(); })); @@ -67,7 +69,7 @@ const MediaMessage = new Lang.Class({ this._player.playPause(); })); - this.addMediaControl('media-skip-forward-symbolic', + this._nextButton = this.addMediaControl('media-skip-forward-symbolic', Lang.bind(this, function() { this._player.next(); })); @@ -82,6 +84,10 @@ const MediaMessage = new Lang.Class({ Main.panel.closeCalendar(); }, + _updateNavButton: function(button, sensitive) { + button.reactive = sensitive; + }, + _update: function() { this.setTitle(this._player.trackArtists.join(', ')); this.setBody(this._player.trackTitle); @@ -99,6 +105,9 @@ const MediaMessage = new Lang.Class({ let iconName = isPlaying ? 'media-playback-pause-symbolic' : 'media-playback-start-symbolic'; this._playPauseButton.child.icon_name = iconName; + + this._updateNavButton(this._prevButton, this._player.canGoPrevious); + this._updateNavButton(this._nextButton, this._player.canGoNext); } }); @@ -139,10 +148,18 @@ const MprisPlayer = new Lang.Class({ this._playerProxy.PlayPauseRemote(); }, + get canGoNext() { + return this._playerProxy.CanGoNext; + }, + next: function() { this._playerProxy.NextRemote(); }, + get canGoPrevious() { + return this._playerProxy.CanGoPrevious; + }, + previous: function() { this._playerProxy.PreviousRemote(); },